/**
 * Created by zhanglihe on 15/11/7.
 */
require.config(require_config);

define([
    'jquery',
    'common',
    'ready',
    'collection',
    'template',
    'model',
    'dialog',
    'datepicker'
], function ($, common, ready, Collection, template, Model, dialog, datepicker) {
    var index = function () {
        this.init();
    };
    index.prototype = {
        init: function () {
            //loading();
            this.fetch();
            this.event();
        },
        fetch: function () {
            var _this = this;
            $.ajax({
                url: _global.url.api + 'appmenu',
                type: 'get',
                async: false,
                success: function (res) {
                    if (res.code == 0) {
                        _this.set('info', res.data);
                    }
                }
            });
            $("#data-list").html('');
            if (this.info) {
                $.each(this.info, function (i, info) {
                    var html = template('data-item', info);
                    $("#data-list").append(html);
                    if (info.children && info.children != undefined) {
                        $.each(info.children, function (j, child) {
                            child.tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--";
                            html = template('data-item', child);
                            $("#data-list").append(html);
                        });
                    }

                });
            }
            ;
        },
        set: function ($k, $v) {
            this[$k] = $v;
        },
        event: function () {
            this.data = {};
            var _this = this;
            //保存
            $("#btn-repeat").on("click", function (e) {
                e.preventDefault();
                dialog({
                    content: '你测试了？确定要重新生成新菜单吗?',
                    ok: function () {
                        new Model({
                            url: _global.url.api + 'clear_cache'
                        }).put();
                    }, cancel: function () {
                    }
                }).show(e.target);
            });
            $('#btn-add').on('click', function (e) {
                _this.data = {};
                e.preventDefault();
                _this.dialog = dialog({
                    content: template('add_type-tpl', {}),
                    width: 600,
                    ok: function () {
                        _this.data.type = $("#type").val();
                        if (_this.data.type == 2) {
                            _this.data.show_type = $("input[name='show_type']:checked").val();
                        }
                        if (_this.data.type == 1) {
                            _this.data.img = $("input[name='imgs']").val();
                            if (_this.data.img == '' || _this.data.img == undefined) {
                                Alert({msg: '请传入一张图片', type: 'error'});
                                return false;
                            }
                            _this.data.name = $('#name').val();
                            if (_this.data.name == '') {
                                Alert({msg: '请传入标题', type: 'error'});
                                return false;
                            }
                            _this.data.url = $('#url').val();
                            if (_this.data.url == '') {
                                Alert({msg: '请传入链接', type: 'error'});
                                return false;
                            }
                            _this.data.url_type = $('#url_type').val();
                            if (_this.data.url_type == '') {
                                Alert({msg: '请填写跳转类型', type: 'error'});
                                return false;
                            }
                            _this.data.coordinate = $('#coordinate').val();
                            if (_this.data.coordinate == '') {
                                Alert({msg: '请填写打点坐标', type: 'error'});
                                return false;
                            }
                        }
                        _this.data.name = $('#name').val();
                        if (_this.data.name == '') {
                            Alert({msg: '请传入标题', type: 'error'});
                            return false;
                        }
                        _this.data.intro = '';
                        _this.data.color = 0;
                        _this.data.arrow = 0;
                        _this.data.reddot = 0;
                        _this.data.newInfo = 0;
                        _this.data.listorder = $('#listorder').val();
                        if (new Model({
                                url: _global.url.api + 'appmenu',
                                data: _this.data
                            }).post()) {
                            _this.fetch();
                        }
                    }, cancel: function () {
                    }
                });
                _this.dialog.show();
                $('input,select,textarea').on('change', function (e) {
                    _this.change(e);
                });
            });
            $('body').on('click', '.item-edit', function (e) {
                _this.data = {};
                var id = $(this).attr('attr');
                e.preventDefault();
                _this.data = _this.info[id];
                _this.dialog = dialog({
                    content: template('add_type-tpl', _this.info[id]),
                    width: 600,
                    ok: function () {
                        if (_this.data.type == 2) {
                            _this.data.show_type = $("input[name='show_type']:checked").val();
                        }
                        if (_this.data.type == 1) {
                            _this.data.img = $("input[name='imgs']").val();
                            if (_this.data.img == '' || _this.data.img == undefined) {
                                Alert({msg: '请传入一张图片', type: 'error'});
                                return false;
                            }
                            _this.data.name = $('#name').val();
                            if (_this.data.name == '') {
                                Alert({msg: '请传入标题', type: 'error'});
                                return false;
                            }
                            _this.data.url = $('#url').val();
                            if (_this.data.url == '') {
                                Alert({msg: '请传入链接', type: 'error'});
                                return false;
                            }
                            _this.data.url_type = $('#url_type').val();
                            if (_this.data.url_type == '') {
                                Alert({msg: '请填写跳转类型', type: 'error'});
                                return false;
                            }
                            _this.data.coordinate = $('#coordinate').val();
                            if (_this.data.coordinate == '') {
                                Alert({msg: '请填写打点坐标', type: 'error'});
                                return false;
                            }
                        }
                        _this.data.name = $('#name').val();
                        if (_this.data.name == '') {
                            Alert({msg: '请传入标题', type: 'error'});
                            return false;
                        }
                        _this.data.intro = '';
                        _this.data.color = 0;
                        _this.data.arrow = 0;
                        _this.data.reddot = 0;
                        _this.data.newInfo = 0;
                        _this.data.listorder = $('#listorder').val();
                        if (new Model({
                                url: _global.url.api + 'appmenu',
                                data: _this.data
                            }).put()) {
                            _this.fetch();
                        }
                    }, cancel: function () {
                    }
                });
                _this.dialog.show();
                if (_this.info[id].type == 2) {
                    $('.banner').hide();
                    $('.group').show();
                } else {
                    $('.banner').show();
                    $('.group').hide();
                }
                $('input,select,textarea').on('change', function (e) {
                    _this.change(e);
                });
            });
            $('body').on("click", '.item-edit-children', function (e) {
                var id = $(this).attr('attr');
                var groupid = $(this).attr('groupid');
                _this.data = _this.info[groupid].children[id];
                e.preventDefault();
                _this.dialog = dialog({
                    content: template('add-tpl', _this.data),
                    width: 600,
                    ok: function () {
                        _this.data.type = 2;
                        _this.data.img = $("input[name='imgs']").val();
                        if (_this.data.img == '' || _this.data.img == undefined) {
                            Alert({msg: '请传入一张图片', type: 'error'});
                            return false;
                        }
                        _this.data.name = $('#name').val();
                        if (_this.data.name == '') {
                            Alert({msg: '请传入标题', type: 'error'});
                            return false;
                        }
                        _this.data.url = $('#url').val();
                        if (_this.data.url == '') {
                            Alert({msg: '请传入链接', type: 'error'});
                            return false;
                        }
                        _this.data.url_type = $('#url_type').val();
                        if (_this.data.url_type == '') {
                            Alert({msg: '请填写跳转类型', type: 'error'});
                            return false;
                        }
                        _this.data.coordinate = $('#coordinate').val();
                        if (_this.data.coordinate == '') {
                            Alert({msg: '请填写打点坐标', type: 'error'});
                            return false;
                        }
                        _this.data.name = $('#name').val();
                        if (_this.data.name == '') {
                            Alert({msg: '请传入标题', type: 'error'});
                            return false;
                        }
                        _this.data.intro = $("#intro").val();
                        _this.data.color = $("#color").val();
                        _this.data.arrow = 0;
                        _this.data.reddot = 0;
                        _this.data.newInfo = 0;
                        if ($("input[name='arrow']").is(":checked")) {
                            _this.data.arrow = 1;
                        }
                        if ($("input[name='reddot']").is(":checked")) {
                            _this.data.reddot = 1;
                        }
                        if ($("input[name='newInfo']").is(":checked")) {
                            _this.data.newInfo = 1;
                        }
                        _this.data.listorder = $('#listorder').val();
                        if (new Model({
                                url: _global.url.api + 'appmenu',
                                data: _this.data
                            }).put()) {
                            _this.fetch();
                        }
                    }, cancel: function () {
                    }
                });
                _this.dialog.show();
            });
            $('body').on("click", '.item-remove', function (e) {
                console.log(11);
                e.preventDefault();
                var id = $(this).attr('attr');
                _this.data.id = id;
                _this.dialog = dialog({
                    content: '确定要删除吗?',
                    ok: function () {
                        new Model({
                            url: _global.url.api + 'appmenu',
                            data: _this.data
                        }).del();
                        _this.fetch();
                        _this.dialog.close(e.target);
                        console.log(2222);
                    }, cancel: function () {
                    }
                });
                _this.dialog.show(e.target);
            });
            $('body').on("blur", '.edit_listorder', function (e) {
                e.preventDefault();
                _this.data.id = $(this).attr('attr');
                _this.data.listorder = $(this).val();
                _this.data.action = 'order';
                new Model({
                    url: _global.url.api + 'appmenu_set',
                    data: _this.data
                }).put();
                _this.fetch();

            });
            $('body').on("change", '#type', function (e) {
                console.log(111);
                if ($(this).val() == 1) {
                    $(".banner").show();
                    $('.group').hide();
                } else if ($(this).val() == 2) {
                    $(".banner").hide();
                    $('.group').show();
                }
            });
            $('body').on("click", '.btn-add_child_open', function (e) {
                e.preventDefault();
                var id = $(this).attr('attr');
                console.log(id);
                $('.menu_' + id).show();
                $(".btn-add_child_close" + id).show();
                $(this).hide();
            });
            $('body').on("click", '.btn-add_child_close', function (e) {
                e.preventDefault();
                var id = $(this).attr('attr');
                $('.menu_' + id).hide();
                $(".btn-add_child_open" + id).show();
                $(this).hide();
            });
            $('body').on("click", '.btn-add_child', function (e) {
                var groupid = $(this).attr('attr');
                _this.data = {};
                e.preventDefault();
                _this.dialog = dialog({
                    content: template('add-tpl', {}),
                    width: 600,
                    ok: function () {
                        _this.data.type = 2;
                        _this.data.groupid = groupid;
                        _this.data.img = $("input[name='imgs']").val();
                        if (_this.data.img == '' || _this.data.img == undefined) {
                            Alert({msg: '请传入一张图片', type: 'error'});
                            return false;
                        }
                        _this.data.name = $('#name').val();
                        if (_this.data.name == '') {
                            Alert({msg: '请传入标题', type: 'error'});
                            return false;
                        }
                        _this.data.url = $('#url').val();
                        if (_this.data.url == '') {
                            Alert({msg: '请传入链接', type: 'error'});
                            return false;
                        }
                        _this.data.url_type = $('#url_type').val();
                        if (_this.data.url_type == '') {
                            Alert({msg: '请填写跳转类型', type: 'error'});
                            return false;
                        }
                        _this.data.coordinate = $('#coordinate').val();
                        if (_this.data.coordinate == '') {
                            Alert({msg: '请填写打点坐标', type: 'error'});
                            return false;
                        }
                        _this.data.name = $('#name').val();
                        if (_this.data.name == '') {
                            Alert({msg: '请传入标题', type: 'error'});
                            return false;
                        }
                        _this.data.intro = $("#intro").val();
                        _this.data.color = $("#color").val();
                        _this.data.arrow = 0;
                        _this.data.reddot = 0;
                        _this.data.newInfo = 0;
                        if ($("input[name='arrow']").is(":checked")) {
                            _this.data.arrow = 1;
                        }
                        if ($("input[name='reddot']").is(":checked")) {
                            _this.data.reddot = 1;
                        }
                        if ($("input[name='newInfo']").is(":checked")) {
                            _this.data.newInfo = 1;
                        }
                        _this.data.listorder = $('#listorder').val();
                        if (new Model({
                                url: _global.url.api + 'appmenu',
                                data: _this.data
                            }).post()) {
                            _this.fetch();
                        }
                    }, cancel: function () {
                    }
                });
                _this.dialog.show();
            });
            //上传图片
            $('body').on('click', '#btn-upload', function (e) {
                _this.upload_dialog = dialog({
                    content: template('upload-tpl', {}),
                    width: 550,
                    ok: function () {
                        console.log(123123123);
                        console.log('contentWindow', $("#upload-frame")[0].contentWindow.image);
                        var img = $("#upload-frame")[0].contentWindow.image.get();
                        _this.imgPreview(img);
                    }, cancel: function () {
                    }
                });
                _this.upload_dialog.show();
            });
        },

        change: function (e) {
            this.data[$(e.target).attr('name')] = $(e.target).val();
        },

        imgPreview: function (img) {
            console.log('this.data', this.data);
            if (typeof img.id !== 'undefined') {
                this.data.img = img.id;
                $('#img-view').html(template('img-tpl', img));
            }
        }
    };

    new index();

});